#include<stdio.h>
#include<stdlib.h>
#include<string.h>


// @ 数组指针 的定义方式

void test(){
    int arr[5] = {1,4,5,3,9};
    
    // 定义一个数组

    typedef int(ARRAY_TYPE)[5];   // ARRAY_TYPE  代表一个 可以存放 5个int数据的  数组

    ARRAY_TYPE arr2;
    int i;
    for( i=0;i<5;i++){
        arr2[i] = i;
    }

    for( i=0;i<5;i++){
        printf("%d\n", arr2[i]);
    }


    ARRAY_TYPE * arr3 = &arr;


    for(i=0;i<5;i++){
        printf("%d\n", (*arr3)[i]);
    }
}

void test2(){
    int arr[5] = {1,4,5,3,9};
    // 定义一个数组指针
    typedef int(*ARRAY_TYPE)[5];

    ARRAY_TYPE arr2 = &arr;
    for(int i=0;i<5;i++){
        printf("%d\n", (*arr2)[i]);
    }
}

void test3(){
    // 直接定义数组指针
    int arr[5] = {1,4,5,3,9};
    int (*p)[5] = &arr;
    for(int i=0;i<5;i++){
        printf("%d\n", (*p)[i]);
    }
}


void main(){


// test();

// test2();

test3();


}